package org.opens.lambda;

import cn.hutool.core.date.DateUtil;
import org.junit.Test;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.IntStream;

public class ForEachMap {

    /**
     * 功能:
     *      -简介
     *          使用lambda语法快速遍历Map.
     *      -输出
     *          s3: 1
     *          s1: 1
     *          s2: 1
     *      -注意
     *          Map存储元素并不是按照存储的顺序进行存储的, 而是根据这个元素的hash值进行存储到对应的hash桶中,
     *          所以迭代遍历这个map输出的顺序和存储的顺序并不相同.
     */
    @Test
    public void test1() {
        Map<String, Object> map = new HashMap<>();
        map.put("s1", 1);
        map.put("s2", 1);
        map.put("s3", 1);
        map.forEach((key, value) -> {
            System.out.println(key + ": " + value);
        });
    }

    /**
     * 功能:
     * <p></p>
     * 输出:
     * <pre>
     *
     * </pre>
     * 说明:
     * <pre>
     *     1.
     * </pre>
     */
    @Test
    public void test46() {
        Date date = new Date();
        int month = DateUtil.month(date) + 1;
        String monthNumber = DateUtil.format(date, "MM");
        System.out.println(monthNumber);

        IntStream.rangeClosed(1, month).forEach(i -> {
            System.out.println(i + " 2020");
        });
    }

}
